<?php

namespace component\system\system_user_auth;

use common\model\Model;

/**
 * Class SystemUserAuthModel
 * @package component\system\system_user_auth
 * @property integer $id
 * @property string $user_id
 * @property string $role_id
 * @property string|array $auth_id
 * @property string $menu
 * @property integer $create_time
 * @property integer $update_time
 * @property integer $delete_time
 */
class SystemUserAuthModel extends Model
{
    protected $table = 'system_user_auth';

    protected $schema = [
        'id' => 'integer',
        'user_id' => 'string',
        'role_id' => 'string',
        'auth_id' => 'string',
        'menu' => 'string',
        'create_time' => 'integer',
        'update_time' => 'integer',
        'delete_time' => 'integer',
    ];

    /**
     * @param SystemUserAuthModel $model
     * @return mixed|void
     */
    public static function onBeforeInsert($model)
    {
        if (!$model->role_id) {
            $model->role_id = '';
        }

        if (!$model->auth_id) {
            $model->auth_id = '';
        }

        if (!$model->menu) {
            $model->menu = '';
        }
    }

    /**
     * @param $value
     * @return string
     */
    protected function setRoleIdAttr($value)
    {
        if (is_array($value) && $value) {
            $value = implode(',', $value);
        } else {
            $value = '';
        }

        return $value;
    }

    /**
     * @param $value
     * @return string
     */
    protected function getRoleIdAttr($value)
    {
        if ($value) {
            $value = explode(',', $value);
        } else {
            $value = '';
        }

        return $value;
    }

    /**
     * @param $value
     * @return string
     */
    protected function setAuthIdAttr($value)
    {
        if (is_array($value) && $value) {
            $value = implode(',', $value);
        } else {
            $value = '';
        }

        return $value;
    }

    /**
     * @param $value
     * @return string
     */
    protected function getAuthIdAttr($value)
    {
        if ($value) {
            $value = explode(',', $value);
        } else {
            $value = '';
        }

        return $value;
    }

    /**
     * @param $value
     * @return string
     */
    protected function setMenuAttr($value)
    {
        if (is_array($value) && $value) {
            $value = implode(',', $value);
        } else {
            $value = '';
        }

        return $value;
    }

    /**
     * @param $value
     * @return string
     */
    protected function getMenuAttr($value)
    {
        if ($value) {
            $value = explode(',', $value);
        } else {
            $value = '';
        }

        return $value;
    }
}    